//
// ---> Game Specific Objects
//
// -- Header ---- Game Camera Class

#ifndef _GAME_CAMERA_H_
#define _GAME_CAMERA_H_

#include "Singleton.h"
#include "GameObject.h"
#include "Camera.h"
#include "Vec3.h"

class GameCamera : public Engine::NonCopyable
{
private:
	GameCamera();
	~GameCamera();
	friend class Engine::Singleton<GameCamera>;

public:
	void Update();
	void Draw();

	void SetPos(Engine::Vec3 pos) { m_pos = pos; }
	void SetVel(Engine::Vec3 vel) { m_vel = vel; }
	void SetFoc(Engine::Vec3 foc) { m_foc = foc; }

	const Engine::Vec3& GetVel() const {return m_vel;}
	const Engine::Vec3& GetPos() const {return m_pos;}
	const Engine::Vec3& GetFoc() const {return m_foc;}

private:
	Engine::Camera m_camera;
	Engine::Vec3 m_pos, m_vel, m_foc;
};

typedef Engine::Singleton<GameCamera> TheGameCamera;

#endif